﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace AudiPyme.DAL
{
    public static class TipoEmpresaFactory
    {
        //Devuelve el identificador de tipo de empresa según su nombre
        public static int IdTipoEmpresa(String NombreTipoEmpresa)
        {
            ModeloContainer agenteBD = new ModeloContainer();
            IQueryable<int> IdTipoEmpresa = from t in agenteBD.TipoEmpresaEstablecer
                                            where t.NombreTipoEmpresa == NombreTipoEmpresa
                                            select t.IdTipoEmpresa;
            if (IdTipoEmpresa.Count() == 0)
            {
                return 0;
            }
            else
            {
                return IdTipoEmpresa.First();
            }
        }

        //Devuelve el nombre de tipo de empresa según su identificador
        public static String NTipoEmpresa(int IdEmpresa)
        {
            ModeloContainer agenteBD = new ModeloContainer();
            IQueryable<String> NomTipoEmpresa = from t in agenteBD.TipoEmpresaEstablecer
                                                join e in agenteBD.EmpresasEstablecer on t.IdTipoEmpresa equals e.IdTipoEmpresa
                                                where e.IdEmpresa == IdEmpresa && e.IdEmpresa != null
                                                select t.NombreTipoEmpresa;
            if (NomTipoEmpresa.Count() == 0)
            {
                return "No tiene un tipo de empresa asociado";
            }
            else
            {
                return NomTipoEmpresa.First();
            }
        }

        //Devuelve el nombre del tipo de empresa de la empresa asociada a un informe
        public static String NTipoEmpresaInforme(int IdInforme)
        {
            ModeloContainer agenteBD = new ModeloContainer();
            IQueryable<String> NomTipoEmpresa = from t in agenteBD.TipoEmpresaEstablecer
                                                join e in agenteBD.EmpresasEstablecer on t.IdTipoEmpresa equals e.IdTipoEmpresa
                                                join EmpInf in agenteBD.EmpresaInformeEstablecer on e.IdEmpresa equals EmpInf.IdEmpresa
                                                where EmpInf.IdInforme == IdInforme && e.IdEmpresa != null
                                                select t.NombreTipoEmpresa;
            if (NomTipoEmpresa.Count() == 0)
            {
                return "No tiene un tipo de empresa asociado";
            }
            else
            {
                return NomTipoEmpresa.First();
            }
        }
    }
}
